package cg.project.service;


import cg.project.mapper.CarMapper;

import cg.project.pojo.Car;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Collections;
import java.util.List;


@Service
public class CarServiceImpl implements CarService {
    // 在类内部声明一个静态的日志记录器变量
    private static final Logger logger = LogManager.getLogger(CarServiceImpl.class);

    @Autowired
    private CarMapper carMapper;

    // 添加汽车
    @Override
    public int addCar(Car car) {
        return carMapper.insertCar(car);
    }

    // 删除汽车
    @Override
    public int removeCar(int id) {
        return carMapper.deleteCarById(id);
    }

    // 更新汽车信息
    @Override
    public int updateCar(Car car) {
        return carMapper.updateCar(car);
    }

    // 根据ID查询汽车
    @Override
    public Car getCarById(int id) {
        return carMapper.selectCarById(id);
    }

    // 查询所有汽车
    @Override
    public List<Car> getAllCars() {
        return carMapper.selectAllCars();
    }

    // 获取首页车辆列表（带分页）
    @Override
    public List<Car> getHomePageCars(int pageNum, int pageSize) {
        try {
            return carMapper.selectHomePageCars(pageNum, pageSize);
        } catch (Exception e) {
            // 这里可以根据实际需求进行更详细的日志记录，比如记录异常的具体信息等
            e.printStackTrace();
            return Collections.emptyList();
        }
    }
    // 获取车辆列表（带分页）
    @Override
    public List<Car> getCarList(int pageNum, int pageSize) {
        try {
            return carMapper.selectCarList(pageNum, pageSize);
        } catch (Exception e) {
            // 这里可以根据实际需求进行更详细的日志记录，比如记录异常的具体信息等
            e.printStackTrace();
            return Collections.emptyList();
        }
    }

    // 根据关键字搜索汽车
    // 根据关键字搜索汽车
    public List<Car> searchCars(String keyword) {
        logger.info("开始根据关键字 '{}' 进行汽车搜索操作", keyword);
        List<Car> cars = carMapper.selectCarsByKeyword(keyword);

        if (cars!= null &&!cars.isEmpty()) {
            logger.info("搜索成功，共查询到 {} 辆符合条件的汽车", cars.size());

        } else {
            logger.info("搜索完成，但未查询到符合条件的汽车");
        }

        return cars;
    }


}